package com.java.module.chat.mapper;

import java.util.List;

import com.java.module.chat.domain.ChatMessage;
import com.java.module.chat.domain.vo.ChatMessageVO;

/**
 * 聊天：消息Mapper接口
 * 
 * @author Administrator
 * @date 2021-05-13
 */
public interface ChatMessageMapper {

    /**
     * 查询聊天：消息
     * 
     * @param messageId 聊天：消息ID
     * @return 聊天：消息
     */
    public ChatMessage selectChatMessageById(Long messageId);

    /**
     * 查询聊天：消息列表
     * 
     * @param chatMessage 聊天：消息
     * @return 聊天：消息集合
     */
    public List<ChatMessage> selectChatMessageList(ChatMessage chatMessage);

    /**
     * 查询单个聊天：消息
     * 
     * @param chatMessage 聊天：消息
     * @return 聊天：消息
     */
    public ChatMessage selectChatMessage(ChatMessage chatMessage);

    /**
     * 查询未读数量
     * 
     * @param chatMessage
     * @return
     */
    public int getUnreadMsgCount(ChatMessage chatMessage);

    /**
     * 新增聊天：消息
     * 
     * @param chatMessage 聊天：消息
     * @return 结果
     */
    public int insertChatMessage(ChatMessage chatMessage);

    /**
     * 修改聊天：消息
     * 
     * @param chatMessage 聊天：消息
     * @return 结果
     */
    public int updateChatMessage(ChatMessage chatMessage);

    /**
     * 更新消息为已读
     * 
     * @param chatMessage
     * @return int
     */
    public int updateChatMsgRead(ChatMessage chatMessage);

    /**
     * 删除聊天：消息
     * 
     * @param messageId 聊天：消息ID
     * @return 结果
     */
    public int deleteChatMessageById(Long messageId);

    /**
     * 批量删除聊天：消息
     * 
     * @param messageIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteChatMessageByIds(Long[] messageIds);

    /**
     * 查询聊天历史
     * 
     * @param chatMessage
     * @return
     */
    public List<ChatMessageVO> selectChatMessageHistory(ChatMessage chatMessage);

}